System and method for bidirectional communication between stylus and stylus sensor controller

ABSTRACT

A method is provided to interface an active stylus with a sensor controller, wherein the sensor controller is coupled to a sensor configured to receive input from the active stylus. In the method the sensor controller defines data frames consisting of more than one time slot usable for receiving packets from the stylus. The active stylus transmits, in response to a request from the sensor controller, a signal including stylus capability information. The sensor controller determines, based on the stylus capability information, a downlink time slot allocation for use by the active stylus to transmit packets to the sensor controller. The sensor controller transmits the downlink time slot allocation to the active stylus.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims priority to U.S. Provisional PatentApplication No. 62/149,907, entitled “Position Input Method, PositionInput System, Sensor Controller and Stylus,” filed Apr. 20, 2015; U.S.Provisional Patent Application No. 62/162,527, entitled “Position InputMethod, Position Input System, Sensor Controller and Stylus,” filed May15, 2015; U.S. Provisional Patent Application No. 62/243,427, entitled“Position Input Method, Position Input System, Sensor Controller andStylus,” filed Oct. 19, 2015; and U.S. Provisional Patent ApplicationNo. 62/291,373, entitled “System and Method for BidirectionalCommunication Between Stylus and Stylus Sensor Controller,” filed Feb.4, 2016, the entirety of which are hereby incorporated by reference.

BACKGROUND

Technical Field

The present application relates to an active stylus, a sensor controllerfor a stylus sensor, and a position input system and method based onsuch stylus and sensor controller; and more particularly to a positioninput system and method that utilize a bidirectional communicationsprotocol between the stylus and the sensor controller.

Description of the Related Art

Various types of styluses are available that allow users to handwritetext and graphics on stylus-sensitive screens (sensors) of electronicdevices, such as tablet computers, smart phones, etc. For example, anactive electrostatic (capacitive) stylus includes a power source and asignal processor, and transmits signal by providing an electric chargecorresponding to the transmission signal to an electrode provided at atip of the stylus, to thereby cause a change in an electric field at ornear a position indicated (pointed to) by the tip. A stylus-sensitivescreen (sensor) of an electronic device includes a matrix of X- andY-electrodes, and the above-described change in the electric fieldcreated by the stylus tip induces a corresponding change in an electriccharge in the matrix electrodes at or near the stylus tip. A sensorcontroller coupled to the sensor and/or a host processor of theelectronic device detects such change in the electric charge in thematrix electrodes to thereby detect the transmission signal from thestylus. The sensor controller and/or the host processor then determinethe position indicated by the stylus on the sensor based on the locationof the matrix electrodes that detected the transmission signal.

Different types of active styluses have different stylus capabilities orfunctions, such as pen (stylus) tip pressure detection capability, howmany different levels the pen (tip) pressure can be detected, penorientation detection capability including pen twist (rotation)detection capability and pen tilt detection capability, differentnumbers and kinds of barrel buttons (switches) provided on the styluses,etc. Typically, a data format used in communication from a stylus to asensor controller is rigidly configured in a given stylus-sensor systemand incapable of supporting different and expanding variations of styluscapabilities and functions.

While it is possible for each stylus to always transmit its entirecapability information to the sensor controller each time the stylus isused with (i.e., enters the sensing zone of) the sensor controller, suchtransmission of the entire capability information would take up multipletime slots or frames available in a given communications protocol. In atypical situation where one or more styluses are constantly entering andexiting the sensing zone of the sensor controller, the sensor controllermay not be able to quickly acquire the capability information of eachentering stylus to start communication with the stylus in a mannerappropriate for the stylus's particular capability. This may lead toslow response time of the sensor controller and hence delay inestablishing communication between the sensor controller and the activestylus. For example, the sensor controller may not be able to promptlyreceive pen orientation data from a stylus, even when the stylus isfully capable of transmitting such orientation data, simply because thesensor controller cannot quickly ascertain the stylus's orientationdetection capability.

BRIEF SUMMARY

Embodiments of the invention offer a technical solution that allows asensor controller to quickly determine the capability information of oneor more active styluses that enter the sensing zone to thereby startbidirectional communication with the styluses. The embodiments areparticularly suited to provide a universal stylus-sensor controllerinterface, which supports different active styluses having differentcapability information.

According to one aspect, a method is provided for interfacing an activestylus with a sensor controller. The sensor controller is coupled to asensor configured to receive input from the active stylus. The sensorcontroller defines data frames consisting of more than one time slotusable for receiving packets from the stylus. The active stylustransmits, in response to a request from the sensor controller, a signalincluding stylus capability information. The sensor controllerdetermines, based on the stylus capability information, a downlink timeslot allocation for use by the active stylus to transmit packets to thesensor controller. The sensor controller transmits the downlink timeslot allocation to the active stylus.

According to a further aspect, the stylus capability informationincludes at least one of: a) capability information regarding predefinedcapability of the active stylus, and b) setting information regardinguser-adjustable setting of the active stylus.

According to a further aspect, the capability information includes atleast one of: i) whether the active stylus is capable of sensing stylusorientation, ii) whether the active stylus is capable of sensing barrelpressure, iii) whether the active stylus has a vendor-specific feature,iv) whether the active stylus has a preferred color, and v) a global IDof the active stylus.

According to a further aspect, the setting information includes at leastone of: i) stylus line width, ii) stylus tip type, iii) color, and iv) aunique identifying number of the active stylus.

According to a further aspect, the setting information includes a colorindication or a unique identifying number of the active stylus, which ischangeable by a user through one or more switches located on the stylus.

According to a further aspect, the downlink time slot allocationincludes at least one of: i) which downlink time slots in a frame areallocated to the active stylus, and ii) what types of packets the activestylus is to transmit in what downlink time slots.

According to a further aspect, the downlink time slot allocationincludes: i) an offset value indicative of a starting time slot for useby the active stylus, and ii) an interval value indicative of intervalsbetween time slots allotted to the active stylus beginning with thestarting time slot.

According to a further aspect, the active stylus that has received thedownlink time slot allocation transmits packets in the time slotsallotted according to the downlink time slot allocation. The packets maybe one of: i) a data packet including operational data indicative ofoperational state of the active stylus, and ii) a non-data packet usedby the sensor controller to calculate a position of the active stylusrelative to the sensor.

According to a further aspect, the operational data included in datapackets includes one or more of: i) stylus tip pressure data, ii) barrelpressure data, iii) stylus orientation data, iv) stylus barrel switchstate data, and v) stylus battery level.

According to another aspect, a sensor controller is provided, which isto be coupled to a sensor, which is configured to receive input from anactive stylus. The sensor controller includes a processor which, inoperation, defines data frames consisting of time slots forcommunication between the active stylus and the sensor controller;receives a signal including stylus capability information of the activestylus from the active stylus; and determines, based on the receivedstylus capability information, a downlink time slot allocation for useby the active stylus to transmit packets to the sensor controller. Thesensor controller further includes a transmission controller coupled tothe processor. The transmission controller, in operation, causestransmission of the downlink time slot allocation to the active stylus.

According to a further aspect, an active stylus is provided. The activestylus includes a receiver which, in operation, receives periodic beaconsignals transmitted from a sensor controller coupled to a sensor that isconfigured to receive input from the active sensor. The beacon signalsserve as timing reference for time slots used in bidirectionalcommunication between the active stylus and the sensor controller. Theactive stylus also includes a processor coupled to the receiver todetect the beacon signal and prepare a signal including styluscapability information of the active stylus. The active stylus furtherincludes a transmitter coupled to the processor to transmit the signalincluding the stylus capability information to the sensor controller.The receiver of the active stylus, in operation, receives from thesensor controller a downlink time slot allocation. The transmitter ofthe active stylus, in operation, transmits packets to the sensorcontroller in the time slots allotted to the active stylus according tothe downlink time slot allocation.

According to a further aspect, a system is provided, which includes: (a)a sensor, (b) a sensor controller coupled to the sensor, and (c) anactive stylus. The sensor controller includes a transmission controller,which causes transmission of periodic beacon signals, and a sensorprocessor coupled to the transmission controller. The active stylusincludes a receiver, which receives the periodic beacon signals. Theactive stylus also includes a stylus processor coupled to the receiverto detect the beacon signal and to prepare a signal including styluscapability information of the active stylus. The active stylus furtherincludes a transmitter coupled to the stylus processor to transmit thesignal including the stylus capability information to the sensorcontroller. The sensor controller determines, based on the receivedstylus capability information of the active stylus, a downlink time slotallocation for use by the active stylus to transmit packets to thesensor controller, and transmits the downlink time slot allocation tothe active stylus.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a diagram illustrating an overall system including an activestylus and an electronic device (e.g., tablet computer), wherein theelectronic device includes a sensor, a sensor controller coupled to thesensor, and a system controller (host processor) of the electronicdevice coupled to the sensor controller.

FIG. 2A is a functional block diagram of a sample active stylus.

FIG. 2B is a functional block diagram of a sample sensor controller.

FIG. 3 is a sample frame format for use in bidirectional communicationbetween a stylus and a sensor controller, wherein the frame is dividedinto sixteen (16) time slots s0˜s15.

FIG. 4A is a table listing sample types of stylus capability informationof an active stylus, including capability information regardingpredefined (preconfigured) capability of the active stylus and settinginformation regarding user-adjustable setting of the active stylus.

FIG. 4B is a table listing a sample data format for use by an activestylus to transmit capability information of the active stylus to thesensor controller.

FIG. 4C is a table listing sample orientation codes for use by an activestylus to transmit capability information regarding orientationdetection capability of the active stylus.

FIG. 4D is another example of a table listing capability information, inparticular, orientation detection capability of the active stylus.

FIG. 4E describes three examples of stylus capability informationregarding predefined capability of an active stylus.

FIG. 5A is a table listing sample operational data indicative of anoperational state of an active stylus, which is transmitted from theactive stylus to the sensor controller according to a schedule set by adownlink time slot allocation.

FIG. 5B is a table showing a downlink data packet format for one type ofoperational data, i.e., IMU (inertial measurement unit) data.

FIG. 5C is a table listing sample operational data indicative of anoperational state of an active stylus, which is transmitted to thesensor controller when polled (requested) by the sensor controller.

FIG. 6 is a flowchart illustrating a sample process flow of an activestylus.

FIG. 7 is a flowchart illustrating a sample flow of a sensor controller,in particular, of performing pairing operation with an active stylus, inwhich the sensor controller receives a hash value indicative of thestylus capability information (e.g., setting information) from theactive stylus and determines whether it recognizes the received hashedvalue and, if so, speeds up the pairing operation.

FIGS. 8A and 8B illustrate sample frame formats, in which a sensorcontroller transmits a beacon signal (BS) to an active stylus, and theactive stylus, in response, transmits a signal including styluscapability information (CP or Hash#1) back to the sensor controller.

FIGS. 9A-9G illustrate seven different frame formats, in which an activestylus transmits packets to the sensor controller according to sixdifferent kinds of downlink time slot allocation specified by the sensorcontroller, respectively.

FIG. 10 is a flowchart illustrating a sample pairing operation betweenan active stylus and a sensor controller, in which the active stylustransmits a hash value indicative of its capability information, and thesensor controller determines whether it recognizes the received hashedvalue and, if so, speeds up the pairing operation. The sensor controlleradditionally uses a second hash value as further verification that thereceived capability information is from the previously-paired stylus.

DETAILED DESCRIPTION

FIG. 1 illustrates an overall system including an active stylus 100 andan electronic device (e.g., PC, tablet computer, smartphone) 3. Theelectronic device 3 includes a sensor 201, a sensor controller 200coupled to the sensor 201, and a system controller (host processor) 300of the electronic device 3 coupled to the sensor controller 200.

The electronic device 3, such as a PC, tablet computer, smartphone,etc., typically includes a screen that underlies or overlies the sensor201, and a user operates the active stylus 100 to handwrite text andgraphics on the screen. As used herein, an active stylus is a stylusthat contains electronics and a power source 105, such as a battery or aparasitic energy conduit. The sensor 201 may be any suitable stylussensitive sensor known in the art, such as a capacitive touch/stylussensor, resistive touch/stylus sensor, electromagnetic resonance stylussensor, optical stylus sensor, ultrasonic stylus sensor, etc. Some arestylus sensors, while others are sensors capable of detecting both anactive stylus and a finger touch. The sensor controller 200, which willbe described in detail in reference to FIG. 2B below, controls operationof the sensor 201, performs bidirectional communication with the activestylus 100, and also communicates with the host processor 300. Forexample, the sensor controller 200 processes handwritten input data fromthe active stylus 100 to determine the (X,Y) coordinates and color of aposition indicated (pointed to) by the active stylus 100 on the sensor201, and forwards the (X,Y) coordinates and color information to thehost processor 300 of the electronic device 3.

The active stylus 100, which will be described in detail in reference toFIG. 2A below, includes a stylus capability information manager 110including memory/cache that stores stylus capability information of thestylus, for example, in the form of tables (TBL). As will be more fullydescribed below, the stylus capability information may includecapability information regarding predefined (e.g.,manufacturer-configured) capability of the stylus, which is typicallynot changeable, and setting information regarding user-adjustablesetting of the stylus. The stylus capability information manager 110updates the setting information each time a user changes the stylussetting, such as the stylus color and stylus line width, using, forexample, switches (buttons) 111 provided on the stylus 100. In FIG. 1,two such buttons are illustrated: one tail button 111A and one sidebutton 111B. The active stylus 100 also includes a data manager 112,which prepares operational data indicative of operational state of theactive stylus, such as stylus (pen) tip pressure data and stylusorientation data (e.g., how much the stylus is twisted or tiltedrelative to the sensor surface).

The stylus capability information manager 110 and the data manager 112are both coupled to a communication module 130 including transmission(TX) and reception (RX) circuitry. The communication module 130transmits the stylus capability information and operational data of theactive stylus 100 to the sensor controller 200, and receives variouscommands and other information (in beacon signals) from the sensorcontroller 200, as will be more fully described below. In thisbidirectional communication protocol, the sensor controller 200 is amaster device and the active stylus 100 is a slave device. In thepresent disclosure, the transmission direction from the sensorcontroller 200 to the active stylus 100 is called “uplink” and thetransmission direction from the active stylus 100 to the sensorcontroller 200 is called “downlink.”

As schematically illustrated in FIG. 1, a typical bidirectionalcommunication flow between the active stylus 100 and the sensorcontroller 200 starts with the active stylus 100 entering the sensingzone (SZ) of the sensor controller 200 during pen-down operationindicated by a down arrow. Once the active stylus 100 is inside thesensing zone, it can detect beacon signals periodically transmitted fromthe sensor controller 200 via the sensor 201. Upon detecting the beaconsignal, the active stylus 100 transmits a response signal, whichincludes the stylus capability information retrieved from the styluscapability information manager 110. As will be described in detail inreference to FIG. 10 below, the setting information of the active stylus100 may be hashed to generate a hash value of fixed (smaller) size(“Hash#1”), which can be advantageously transmitted in one time slot tothe sensor controller 200. Hash#1 has a corresponding hash value offixed size (“Hash#2”). If the active stylus 100 has previously beenpaired with the sensor controller 200, then both the active stylus 100and the sensor controller 200 have Hash#1 and Hash#2, which arecalculated from the particular setting information of the active stylus100 when it was paired with the sensor controller 200. Therefore, if thesensor controller 200 recognizes the received Hash#1, the sensorcontroller 200 knows that it was previously paired with the activestylus 100 and, thus, is already aware of the stylus capabilityinformation of the active stylus 100 including the particular settinginformation. The sensor controller 200 can then use the same downlinktime slot allocation as previously assigned to the active stylus 100 tostart bidirectional communication with the active stylus 100. Inaddition the sensor controller 200 may return Hash#2, which correspondsto the received Hash#1, to the active stylus 100 to verify that it hascorrectly recognized the active stylus 100. As will be more fullydescribed below, use of Hash#1 speeds up the pairing process between theactive stylus 100 and the sensor controller 200 each time the activestylus 100 reenters the sensing zone of the sensor controller 200, whichis a particularly advantageous technical feature when the active stylus100 repeatedly exits (see “Pen up” arrow) and reenters (see “Pen down”arrow) the sensing zone.

As used herein, “pairing” operation refers to a process that starts withtransmission of a response signal from the active stylus 100, which hasdetected an initial (discovery) beacon signal from the sensor controller200, and ends with transmission of another beacon signal including adownlink time slot allocation for the active stylus 100 from the sensorcontroller 200. The sensor controller 200 determines a downlink timeslot allocation for a given active stylus in view of the styluscapability information of the active stylus, to thereby establish aunique communication link, fully supportive of the stylus capability,with the active stylus. Thus, at the conclusion of pairing operation,the active stylus may start bidirectional communication with the sensorcontroller using the newly established unique communication link.

Use of Hash#1 is also advantageous in achieving “fast inking.” Before anapplication program can start to draw, it needs to know the parametersfor the line it is about to render on a screen. These parametersinclude, for example, the color or the brush style (airbrush, chalk,etc.) of the line. Use of Hash#1 allows a sensor controller to quicklyrecognize that it already has these parameters cached for a particularstylus that has entered the sensing zone, and to make these parametersavailable to the application program to start drawing, or “inking,”almost immediately.

FIG. 2A is a functional block diagram of a sample active stylus 100. Theactive stylus 100 includes a TX/RX electrode 115 at its tip, switch SWcoupled to the TX/RX electrode 115, reception circuitry 117,transmission circuitry 119, and a micro-controller unit (MCU) 120. TheMCU 120 is a microprocessor including internal ROM and RAM andconfigured to operate according to a defined program. Switch SW couplesthe TX/RX electrode 115 to either a reception terminal R or atransmission terminal T as directed by switch control signal SWC fromthe MCU 120. Initially switch SW connects the TX/RX electrode 115 to thereception terminal R while the active stylus 100 listens for beaconsignals from the sensor controller 200. The reception circuitry 117includes electronic components necessary to receive and process signalsfrom the TX/RX electrode 115 and output them in digital form usable bythe MCU 120. When the MCU 120 detects a beacon signal from the sensorcontroller 200, it prepares a response signal (e.g., an ACK signal) incooperation with the transmission circuitry 119, and also sends switchcontrol signal SWC to switch SW to connect the TX/RX electrode 115 tothe transmission terminal T to transmit the response signal via theTX/RX electrode 115 to the sensor controller 200.

The transmission circuitry 119 includes electronic components necessaryto receive and process signals from the MCU 120 and output them to betransmitted via the TX/RX electrode 115 to the sensor controller 200.For example, the transmission circuitry 119 generates a carrier signalat a frequency specified by the MCU 120 and may output the carriersignal, without modulation, as “position packets” to be used by thesensor controller 200 to determine (calculate) a position indicated bythe active stylus 100. Alternatively, the transmission circuitry 119 maymodulate the carrier signal with the stylus capability information ofthe active stylus 100, such as Hash#1 indicative of the settinginformation, using any suitable modulation schemes such as PSK (phaseshift keying), D-BPSK (differential binary PSK), QAM (quadratureamplitude modulation) and DSSS (direct sequence spread spectrum). Thenthe signal modulated with the stylus capability information istransmitted via the TX/RX electrode 115 to the sensor controller 200.

The transmission circuitry 119 may modulate the carrier signal withinformation other than the stylus capability information, such asoperational data indicative of operational state of the active stylus100. Operational data may include, for example, stylus (pen) tippressure data, stylus barrel pressure data, stylus orientation (e.g.,twist/tilt) data, stylus switch status, and stylus battery level. Togenerate such operational data, the active stylus 100 includes one ormore sensors 122, such as a stylus (pen) tip pressure sensor 122 a(e.g., comprised of a variable capacitor) configured to sense pressureapplied to the stylus tip, barrel pressure sensor configured to sensepressure applied to the stylus barrel, 9-axis or lesser-axis IMU(inertial measurement unit) 122 b (consisting of one or morecombinations of 3-axis gyroscopes, 3-axis accelerometers, and 3-axismagnetometers), twist sensor 122 c configured to sense twist/rotation ofthe active stylus 100 about its axis relative to the direction of eachof X electrodes (or Y electrodes) of the sensor 201, tilt sensor 122 dconfigured to sense X- and Y-directional tilt of an axis of the activestylus 100 relative to the surface of the sensor 201, etc. (Illustrationof the sensors 122 b-122 d other than the stylus tip pressure sensor 122a is omitted). The MCU 120 and the transmission circuitry 119 prepareoutputs from these sensors into “data packets” to be transmitted via theTX/RX electrode 115 to the sensor controller 200. To transmit the datapackets to the sensor controller 200, the MCU 120 sends switch controlsignal SWC to switch SW to connect the TX/RX electrode 115 to thetransmission terminal T.

Different active styluses have different sensing capabilities; somestyluses are fully equipped with various sensors, while other stylusesinclude only the stylus tip pressure sensor 122 a. As will be more fullydescribed below, the present invention proposes a bidirectionalcommunication protocol that permits the sensor controller 200 to quicklyascertain the particular capability of a given active stylus enteringthe sensing zone, to thereby configure a unique communication link(based on a specific downlink time slot allocation) that is supportiveof the stylus's capability.

FIG. 2B is a functional block diagram of a sample sensor controller 200.The sensor controller 200 is part of the electronic device 3 (seeFIG. 1) and is coupled to the sensor 201 including a matrix of Xelectrodes 201X and Y electrodes 201Y, on which the active stylus 100carries out various handwriting operation. The sensor controller 200 isalso coupled to the host processor 300 of the electronic device 3.

The sensor controller 200 includes transmission circuitry 210, aselector 220, reception circuitry 230, a logic unit 235, and an MCU(micro-controller unit) 240. The MCU 240 is a microprocessor includinginternal ROM and RAM and configured to operate according to a definedprogram. The MCU 240 directs the logic unit 235 to issue controlsignaling (ctr, sTRx, sTRy, selX, selY, etc.) to control operation ofthe transmission circuitry 210, selector 220 and reception circuitry230. The MCU 240 processes digital data received from the receptioncircuitry 230 to determine/calculate the X- and Y-coordinates, color,opacity (darkness), etc., of a point indicated by the active stylus 100on the sensor 201, and outputs the calculated point data to the hostprocessor 300 of the electronic device 3 for display, for example.

The transmission circuitry 210 includes electronic components necessaryto receive and process signals from the MCU 240 and output them to betransmitted via the matrix electrodes of the sensor 201 to the activestylus 100. Specifically, under the control of the MCU 240, thetransmission circuitry 210 generates periodic beacon signals to betransmitted via the matrix electrodes of the sensor 201 to the activestylus 100. As will be more fully described below, beacon signals areused (detected) by nearby active styluses to discover the sensorcontroller 200 and serve as timing reference by the active styluses tosynchronize with the sensor controller 200. Additionally, a beaconsignal may include Hash#2, which the sensor controller 200 that hasreceived Hash#1 from the active stylus 100 may transmit back to theactive stylus 100 for verification, as described above. Beacon signalsmay include a downlink time slot allocation determined for the activestylus, to thereby notify the active stylus what downlink time slots touse to transmit what types of packets to the sensor controller. Furtheradditionally, beacon signals may include various commands to controloperation of the active stylus 100. For example, beacon signals mayinclude a read command to request the active stylus 100 to transmit(additional) stylus capability information to the sensor controller 200,or a write command to configure (write in) capability information forthe active stylus 100. Beacon signals may also include a polling commandto request (poll) the active stylus to transmit operational data of theactive stylus, such as a battery level of the active stylus, to thesensor controller. The transmission circuitry 210 may modulate a carriersignal that forms a beacon signal with Hash#2, with the downlink timeslot allocation or with these various commands received from the MCU240, using any suitable modulation schemes such as PSK, D-BPSK, QAM andDSSS.

The reception circuitry 230 includes electronic components necessary toprocess signals received from the active stylus 100 via the matrixelectrodes of the sensor 201 and output them in digital form usable bythe MCU 240. For example, the reception circuitry 230 processes andoutputs response signals (in response to the beacon signals), datapackets (including operational data of the active stylus) and positionpackets received from the active stylus 100 to the MCU 240. When thesensor 201 is capable of detecting a finger touch as well as the activestylus 100, the reception circuitry 230 receives via the matrixelectrodes of the sensor 201 signals indicative of a finger touch aswell as signals transmitted from the active stylus 100, and processesand outputs them to the MCU 240, which determines a finger touchposition as well as a position indicated by the active stylus 100.

The selector 220, based on control signaling from the logic unit 235,switches operational modes of the sensor 201 between transmission modeand reception mode. The selector 220 includes switches 222 x and 222 y,and electrode selection circuitry 224 x and 224 y. Based on controlsignaling sTRy and sTRx from the logic unit 235, the switches 222 x, 222y connect the X-electrodes 201X and Y-electrodes 201Y of the sensor 201,respectively, to either a transmission terminal T coupled to thetransmission circuitry 210 or a reception terminal R coupled to thereception circuitry 230. The electrodes coupled to the transmissioncircuitry 210 are used in transmission mode to transmit signals to theactive stylus 100, and the electrodes coupled to the reception circuitry230 are used in reception mode to receive signals from the active stylus100. Further, based on control signaling selX and selX, the electrodeselection circuitry 224 x and 224 y select X-electrodes 201X andY-electrodes 201Y, respectively, to transmit or receive signals to orfrom the active stylus 100. The logic unit 235 additionally sendscontrol signaling “ctr” to the transmission circuitry 210 and thereception circuitry 230 to control their operation as directed by theMCU 240.

FIG. 3 is a sample frame format for use in bidirectional communicationbetween an active stylus 100 and a sensor controller 200, wherein thebidirectional communication resource is divided into frames along a timeaxis and is divided into different frequencies along a frequency axis.Each frame is further divided into sixteen (16) time slots s0˜s15 alongthe time axis, wherein each time slot is sized to accommodate up to 20bits (16 information bits plus 4 CRC bits) for example. In one example,a frame length is 16 msec and a time slot length is 1 msec. It should benoted that a frame may be divided into less or more than 16 time slots,and the invention is not limited to the 16-time slot example illustratedherein. For example, a 16-msec frame may be divided into 64 time slots,wherein each time slot is 250 μsec long.

In exemplary embodiments, one or more time slots at the beginning ofeach frame are used in “uplink” by the sensor controller 200 to sendperiodic beacon signals (BS) to the active stylus 100. Thus, a frame maybe considered as an interval between the beginnings of two successivebeacon signals. Other time slots in each frame are used in “downlink” bythe active stylus 100 to send signals (e.g., response signals to thebeacon signals), data packets and position packets to the sensorcontroller 200, as illustrated in various examples of FIGS. 8A-9G to bedescribed below. Though not illustrated, a gap time slot may be providedbetween the uplink time slot (s0 in FIG. 3) and the downlink time slots(s1-s15 in FIG. 3), during which no transmission is scheduled, uplink ordownlink, to avoid collision between uplink transmission and downlinktransmission.

Beacon signal is a periodic signal sent by the sensor controller 200 toallow nearby active styluses to discover the sensor controller 200 andto serve as timing reference for time slots used in bidirectionalcommunication between the sensor controller 200 and the active styluses100. Thus, in a typical embodiment, beacon signals are transmitted atall frequencies to be detectable by all active styluses. Each activestylus 100 listens for beacon signals and, after it detects a beaconsignal, it sets its timing reference based on the beacon signal. Beaconsignals subsequent to the initial beacon signal detected by the activestylus 100 to discover the sensor controller 200 may include variousinformation, such as Hash#2 used to verify that the active stylus 100was previously paired with the sensor controller 200, and commands tocontrol operation of the active stylus 100 during and after the pairingoperation. A beacon signal including Hash#2 or commands directed to theactive stylus 100 typically includes a stylus ID of the active stylus100 such that the active stylus 100 can identify which beacon signalsare directed to the active stylus 100 (as opposed to other activestyluses, if any). Beacon signals from the sensor controller 200 alsotypically include a sensor controller ID of the sensor controller 200.

In accordance with various embodiments, the sensor controller 200quickly ascertains capability information of each active stylus 100 thatis entering the sensing zone of the sensor controller 200 anddetermines, based on the ascertained capability information, a downlinktime slot allocation for the active stylus 100. The active stylus 100then starts bidirectional communication with the sensor controller, bytransmitting data packets and/or position packets to the sensorcontroller according to the determined downlink time slot allocationthat is supportive of the capability of the active stylus 100. Forexample, when the sensor controller 200 determines that a given activestylus has stylus orientation detection capability, the sensorcontroller 200 assigns downlink time slots for the active stylus 100 totransmit stylus orientation data to the sensor controller 200, while thesensor controller 200 does not assign such downlink time slots to anactive stylus that does not have stylus orientation detectioncapability. Thus, the sensor controller 200 may assign a differentdownlink time slot allocation to an active stylus depending on thecapability information of the active stylus. Because setting informationregarding user-adjustable setting of the active stylus (e.g., stylusline width) may be modified while the active stylus is outside thesensing zone of the sensor controller 200, the sensor controller needsto ascertain the current setting information each time the active stylusreenters the sensing zone even when the active stylus has beenpreviously paired with the sensor controller.

FIG. 4A is a table listing sample types of stylus capability informationof an active stylus, including capability information and settinginformation. Capability information relates to predefined capability ofthe active stylus that is preconfigured, typically by a stylus vendor(manufacturer), and is typically not user-changeable. For example, thenumber of barrel switches provided on a stylus is not user-changeable.Capability information may also include a version number (4 bits)indicative of which version of the bidirectional communication protocolthe active stylus complies with. Capability information may stillfurther include “preferred color” (8 bits to indicate one of 140 CSS(Cascading Style Sheet) colors), which is a preferred or default colorof the active stylus to be displayed on a screen of the sensor 201.Capability information may also relate to various other capabilitiesthat may be configured for the active stylus by a vendor, as will bemore fully described below in reference to FIG. 4B.

FIG. 4A also describes some setting information regardinguser-adjustable setting of the active stylus, such as a “pen style”including a stylus line width and a stylus tip type (e.g., 0=pen,1=eraser, 2=chisel tip marker, 3=airbrush, 4=pencil, and 5-7=reservedfor custom/vendor-specific tip styles) and functions assigned to thetail/barrel buttons (switches) 111A/111B of the active stylus. Forexample, a user may change the pen style by operating the buttons(switches), or change the functions assigned to the buttons (switches).Setting information may relate to other user-changeable setting that maybe configured for the active stylus. A unique identifying number of theactive stylus may be changeable by a user through one or more switcheslocated on the active stylus. For example, a vendor ID (8 bits) and aserial number (56 bits), which together form a 64-bit global ID for eachstylus, can be user-changeable. (In some embodiments, a global ID is notuser-changeable.) Also, the “preferred color” of the active stylus,which is described above as one type of capability information, mayinstead be user-adjustable setting information and a user may freelyadjust the preferred (default) color using the buttons (switches) forexample. As the example of “preferred color” indicates, differencebetween capability information and setting information is not rigid, andmay change from vendor to vendor, or from stylus to stylus. Also, theremay be some setting information that may be set by a user only once, orvery infrequently, such that it may be treated as capabilityinformation.

FIG. 4B is a table listing a sample data format for use by an activestylus to transmit its capability information to the sensor controller200. Capability information includes, for example, information regardinghow many different levels (e.g., 256, 512, 1024, etc.) the pen tippressure can be detected; the number of barrel buttons (e.g., 111A/111B)provided on the active stylus; the stylus's capability to detect barrelpressure (no or yes, and if yes, how many different levels the barrelpressure can be detected); and the stylus's capability to detect stylusorientation (e.g., stylus twist and tilt) as will be more fullydescribed below in reference to FIG. 4C.

Capability information of FIG. 4B may further include informationregarding whether a custom (customized) data size is set for a datapacket (no or yes) and, if yes, the number of custom data bytes; theorientation resolution in which the stylus's orientation can be detected(e.g., 0 indicates 8 bit resolution, 1 indicates 9 bit resolution, and 2indicates 10 bit resolution); the customized number (as opposed todefault numbers) of different levels at which the pen tip pressure canbe detected; the customized number (as opposed to default numbers) ofbarrel buttons provided on the active stylus; and the customized numberof data bytes used to transmit orientation data (as opposed to defaultdata bytes).

FIG. 4C is a table listing sample orientation codes for use by an activestylus to transmit capability information regarding the stylus'sorientation detection capability to the sensor controller. Anorientation code of 0 indicates the active stylus has no orientationdetection capability; 1 indicates the active stylus can detect tilt inboth X-direction and Y-direction and the detected X- and Y-tilt data canbe transmitted in 2 time slots per frame; 2 indicates the active styluscan detect and transmit X- and Y-tilt plus twist (rotation) data in 3time slots per frame; 3 indicates the active stylus can detect andtransmit altitude and azimuth data of the active stylus relative to thesensor surface in 2 time slots per frame; 4 indicates the active styluscan detect and transmit altitude and azimuth data as well as twist(rotation) data in 3 time slots per frame; 5 indicates the active stylusincludes a 6-axis IMU (inertial measurement unit) consisting of acombination of 3-axis gyroscope and 3-axis accelerometer and cantransmit 6-axis IMU data in 3 time slots per frame; 6 indicates theactive stylus includes a 9-axis IMU consisting of a combination of3-axis gyroscope, 3-axis accelerometers and 3-axis magnetometer, and cantransmit 9-axis IMU data in 3 time slots per frame, and 7 indicates acustomized form of orientation data that can be detected and transmittedby the active stylus.

While the orientation code table of FIG. 4C shows different values 0 to7 for different types of orientation sensors, an alternative approach isto provide a bit field of capabilities, as shown in FIG. 4D, which theactive stylus can use to notify its orientation capability to the sensorcontroller. Each of the bits that are set in the capability informationindicates that the stylus is capable of measuring that item. If theBarrel pressure bit is set in the capability information field, itindicates the stylus has a barrel pressure indication. If the Tilt bitis set it indicates the stylus is capable of measuring X and Y tilt. Ifthe Twist bit is set it indicates the stylus is capable of measuringstylus axial twist. If the Altitude & Azimuth bit is set it indicatesthe stylus is capable of measuring altitude and azimuth of the stylus.If the IMUhasAccel bit is set it indicates the stylus has a three-axisaccelerometer. If the IMUhasGyro flag is set it indicates the stylus hasa three-axis gyroscope. If the IMUhasMagnet bit is set it indicates thestylus has a three-axis magnetometer. Each of these bits that are setindicates the need to allocate a time slot for that data, although aswill be described below, for an IMU it is possible to multiplex datainto a single time slot or a set of time slots.

FIG. 4E describes three examples of capability information of an activestylus. Example 1 is the capability information of a first activestylus, which can detect stylus tip pressure at 1024 different levels,has 1 barrel button, has no tangential (barrel) pressure sensingcapability, no stylus orientation sensing capability and no customcapability. Example 2 is the capability information of a second activestylus, which can detect stylus tip pressure at 2048 different levels,has 2 barrel buttons, has tangential (barrel) pressure sensingcapability, has stylus orientation sensing capability based on a 9-axisIMU (Orientation Code 6 in FIG. 4C), and has no custom capability.Example 3 is the capability information of a third active stylus, whichcan detect stylus tip pressure at a customized number of differentlevels wherein each pressure level (value) is expressed in 16 bits, hasno barrel buttons and no tangential (barrel) pressure sensingcapability, and has stylus orientation sensing capability to detect andreport altitude and azimuth data as well as twist (rotation) data of theactive stylus (Orientation Code 4 in FIG. 4C).

FIG. 5A is a table listing sample operational data indicative of theoperational state of an active stylus, which may be transmitted from theactive stylus to the sensor controller according to a schedule set by adownlink time slot allocation for the active stylus. In variousembodiments, operational data transmitted according to a schedule areoperational data the sensor controller needs to achieve properinteractive operation between the sensor controller and the activestylus. Such operational data include, for example, tip pressure data,tangential (barrel) pressure data, status of each barrel button (e.g.,on/off state of each barrel button), invert data indicative of whetherthe active stylus is inverted from its intended orientation (i.e., thestylus tip is pointed upwardly, meaning that the stylus tail is pointingto and is in contact with the sensor surface to be used as an “eraser,”for example), stylus orientation data, and any other customizedoperational data indicative of some operational state of the activestylus.

In some cases the amount of operational data from sensors in the stylusmay be large. This is especially true of IMUs. These sensors may haveany or all of the following: accelerometers with one to three axis,gyroscopes with one to three axis, and magnetometers with one to threeaxes. This could result in the need to send up to nine axes of data. Asan alternative to sending this data in nine time slots of a dedicatedtype (e.g., X, Y, Z axes of the accelerometer; X, Y, Z axes of thegyroscope; and X, Y, Z axes of the magnetometer), the data can bemultiplexed into one or more time slots.

To accomplish the multiplexing, the IMU data is tagged with a flag (IMUflag) to indicate which sensor (accelerometer, gyroscope, ormagnetometer) the data came from. FIG. 5B, is an example of a datapacket (or a report) for transmitting IMU data. In FIG. 5B, the “IMUdata” field includes the IMU data itself, and the “IMU Flag” fieldindicates which sensor produced the IMU data. For example, if the IMUFlag is zero it could indicate that the data came from an accelerometer,if the IMU Flag is one it could indicate that the data came from agyroscope, and if the IMU Flag is two it could indicate the data camefrom a magnetometer. The IMU data field may include X, Y, Z axes dataproduced by the sensor indicated by the IMU Flag.

For example, the nine axes of data (e.g., X, Y, Z axes of theaccelerometer; X, Y, Z axes of the gyroscope; and X, Y, Z axes of themagnetometer) can be multiplexed into three time slots (or three datafields) of a common report format (or data packet), to form threereports at three different times, as below:

(report 1)

Sensor tag—“Accelerometer”

X axis data field—Accelerometer X axis data

Y axis data field—Accelerometer Y axis data

Z axis data field—Accelerometer Z axis data

(report 2)

Sensor tag—“Gyroscope”

X axis data field—Gyroscope X axis data

Y axis data field—Gyroscope Y axis data

Z axis data field—Gyroscope Z axis data

(report 3)

Sensor tag—“Magnetometer”

X axis data field—Magnetometer X axis data

Y axis data field—Magnetometer Y axis data

Z axis data field—Magnetometer Z axis data

As another example, the nine axes of data can be multiplexed into onetime slot (or one data field) of a common report format, to form ninereports at nine different times:

(report 1)

Sensor tag—“Accelerometer”

Axis tag—“X”

Data field—Accelerometer X axis data

(report 2)

Sensor tag—“Accelerometer”

Axis tag—“Y”

Data field—Accelerometer Y axis data

(report 3)

Sensor tag—“Accelerometer”

Axis tag—“Z”

Data field—Accelerometer Z axis data

(report 4)

Sensor tag—“Gyroscope”

Axis tag—“X”

Data field—Gyroscope X axis data

(report 5)

Sensor tag—“Gyroscope”

Axis tag—“Y”

Data field—Gyroscope Y axis data

(report 6)

Sensor tag—“Gyroscope”

Axis tag—“Z”

Data field—Gyroscope Z axis data

(report 7)

Sensor tag—“Magnetometer”

Axis tag—“X”

Data field—Magnetometer X axis data

(report 8)

Sensor tag—“Magnetometer”

Axis tag—“Y”

Data field—Magnetometer Y axis data

(report 9)

Sensor tag—“Magnetometer”

Axis tag—“Z”

Data field—Magnetometer Z axis data

Multiplexing the IMU data into one or more time slots (one or more datafields) in this manner has the advantage of reducing the number ofrequired time slots in each report, at the expense of increasing thenumber of reports needed to transmit the IMU data, slowing down theoverall IMU data rate.

In some embodiments the data from multiple IMU sensors may be combinedin a process known as “sensor fusion” to produce desired position andmotion information. For example, when it is desired to determine whichdirection of the active stylus is “down,” the gyroscope data thatindicates the direction of movement may be subtracted from theaccelerometer data that indicates both the acceleration direction ofmovement and the acceleration direction of gravity. The result of thesubtraction indicates the acceleration direction due to gravity alone,i.e., the “down” frame of reference.

In performing “sensor fusion,” the data from various IMU sensors shouldbe measured as close in time as possible relative to each other to givethe most accurate results. The “End” bit shown in FIG. 5B may be used toachieve synchronization among the data from various IMU sensors asfollows. A measurement of the multiple IMU sensors is taken and bufferedin the active stylus. This buffered data is sent in the available IMUtime slot allocations with the End bit clear (e.g., “0”). FIG. 9G showsan example of IMU data packet and a usage of ‘End bit.’ When the lastbuffered data element is placed in a time slot the End bit is set (e.g.,to “1”) to indicate it is the last in the set of IMU data obtained bythe multiple IMU sensors simultaneously or close in time. In the sensorcontroller, any IMU data received with the End bit clear is added to abuffer. When the sensor controller receives IMU data with the End bitset, the sensor controller may then use the data in the buffer as acomplete set of IMU data from the multiple IMU sensors, for transfer tothe host processor to perform sensor fusion.

FIG. 5C is a table listing sample operational data indicative ofoperational state of an active stylus, which the active stylus transmitsto the sensor controller when polled (requested) by the sensorcontroller, such as a battery level of the active stylus. Thus, thistype of operational data is only infrequently transmitted to the sensorcontroller.

It should be noted that the stylus capability information describedabove in reference to FIGS. 4A-4E and the operational data describedabove in reference to FIGS. 5A-5C are examples only, and the presentinvention is not limited to using the particular examples disclosed inFIGS. 4A-5C.

FIG. 6 is a flowchart illustrating a sample process flow of an activestylus. In step S601, the active stylus determines its own styluscapability information, as stored in the table TBL of the styluscapability information manager 110 (FIG. 1) for example. When, in stepS603, the active stylus detects user operation to modify the setting ofthe active stylus (e.g., stylus line width, color, etc.), in step S605the active stylus updates the setting information accordingly. As shownin FIG. 6, steps S601-S605 typically occur while the active stylus 100is outside the sensing zone of the sensor controller 200. In step S611,the active stylus listens for beacon signals from the sensor controller200 and, if no beacon signal is detected, returns to step S603 andcontinues updating the setting information, as needed, and listening forbeacon signals.

In step S611, upon entering the sensing zone of the sensor controller200, the active stylus detects a beacon signal from the sensorcontroller 200. In step S613, the active stylus synchronizes itsframe/time slots configuration with that of the sensor controller usingthe detected beacon signal as timing reference. In step S615, the activestylus sends a hashed value of the setting information (Hash#1) using asingle downlink time slot to let the sensor controller determine whetherthe sensor controller recognizes the active stylus as the one the sensorcontroller has been previously paired with. If the sensor controllerdoes not recognize the active stylus based on Hash#1, in step S617, inresponse to a capability information request (read) command receivedfrom the sensor controller, the active stylus sends its (complete)stylus capability information to the sensor controller, possibly usingmultiple downlink time slots. On the other hand, if the sensorcontroller recognizes the active stylus based on Hash#1, in step S619,the sensor controller sends a hashed value of the setting information(“Hash#2”) to the active stylus for verification, preferably using asingle uplink time slot. Pairing and “fast inking” operation between theactive stylus and the sensor controller using Hash#1 and Hash#2 will bedescribed further in reference to FIGS. 7 and 10 below.

After sending non-hashed stylus capability information in step S617, orreceiving Hash#2 of the setting information in step S619, in step S631the active stylus again listens for beacon signals from the sensorcontroller 200. The beacon signal detected at this time includes adownlink time slot allocation, which the sensor controller hasdetermined for the active stylus based on the stylus capabilityinformation of the active stylus. When the beacon signal including thedownlink time slot allocation is detected, in step S633 the activestylus resets a counter to 0, and in step S635 starts to transmitpackets to the sensor controller according to a schedule set by thedownlink time slot allocation included in the detected beacon signal.The packets to be transmitted may be position packets to be used by thesensor controller to determine a position of the active stylus and/ordata packets that include operational data (e.g., sensed pressure data,sensed orientation data, etc.) of the active stylus. Also, when polled(requested) by the sensor controller in the beacon signal detected instep S631 or in any subsequently detected beacon signal (not shown inFIG. 6), in step S637 the active stylus transmits a data packetincluding the polled operational data, such as a battery level of theactive stylus, to the sensor controller according to the downlink timeslot allocation. For example, the active stylus may use any time slot,which is not used to transmit the scheduled packets in step S635 above,to transmit the data packet including the polled operational data.

After transmitting the non-hashed stylus capability information in stepS617 or receiving Hash#2 of the setting information in step S619, if theactive stylus does not detect a beacon signal in return in step S631, instep S641 the active stylus determines whether the counter has exceededa threshold value and, if not, increments the counter value in stepS643. If the counter exceeds the threshold value in step S641, it isassumed that the active stylus has exited the sensing zone of the sensorcontroller 200 (i.e., the user has moved the active stylus away from thesensor 201) and is beyond the reach of beacon signals from the sensorcontroller. Thus, the active stylus returns to steps S603, S605 andS611, to resume updating the setting information, as needed, andlistening for (initial) beacon signals.

FIG. 7 is a flowchart illustrating a sample process flow of a sensorcontroller. FIG. 7 also illustrates a sample pairing operation betweenthe sensor controller and an active stylus, in which the sensorcontroller receives from the active stylus a hash value (“Hash#1”)indicative of the stylus capability information (e.g., settinginformation). If the sensor controller recognizes the received Hash#1,it may speed up the pairing operation.

In step S711, the sensor controller sends a beacon signal in thebeginning time slot(s) of each frame, such as in the first time slot“s0.” In step S714, the sensor controller extracts a hashed value(Hash#1) of the stylus capability information from a response (e.g.,ACK) signal returned from an active stylus, which has detected thebeacon signal. Hash#1 may be the hashed value of the stylus capabilityinformation in complete form including both the capability informationand the setting information, or may be of the setting information.

In step S715, the sensor controller determines whether the extractedHash#1 corresponds to the hashed value (Hash#1) of the stylus capabilityinformation (e.g., setting information) cached in the sensor controller.Essentially, step S715 is a step in which the sensor controllerdetermines whether it recognizes the active stylus as the one that thesensor controller has been previously paired with; if so the sensorcontroller already has complete stylus capability information of theactive stylus.

If the sensor controller does not recognize Hash#1 in step S715, in stepS717, the sensor controller sends a beacon signal including a readcommand to request the active stylus to transmit its stylus capabilityinformation. Alternatively or additionally the sensor controller maysend a beacon signal including a write command to forcibly configure(set) a certain setting for the active stylus. For example, the sensorcontroller may issue a write command to set a certain default color forthe active stylus.

In step S719, the sensor controller confirms that it has the styluscapability information of the active stylus, which the sensor controllerhas received in complete form using multiple downlink time slots (seestep S617 in FIG. 6) or has confirmed as already cached in the sensorcontroller based on Hash#1. The sensor controller then determines adownlink time slot allocation for the active stylus based on the styluscapability information. The downlink time slot allocation specifieswhich downlink time slots in a frame are allocated to the active stylusand may also specify what types of packets (e.g., data packets orposition packets) the active stylus should transmit in what downlinktime slots. The sensor controller determines a downlink time slotallocation for each active stylus based on the particular capabilityinformation of the active stylus. For example, to an active stylusincluding stylus orientation and barrel pressure sensors in addition toa stylus tip pressure sensor, the sensor controller may allocate moredownlink time slots to transmit operational data indicative of outputsfrom these various sensors, as compared to an active stylus thatincludes only a stylus tip pressure sensor. When multiple activestyluses of various capabilities and settings are used with the sensorcontroller, the sensor controller determines a downlink time slotallocation for each active stylus while avoiding downlink time slotcollision among the multiple active styluses. That is, in someembodiments, each time slot is allotted to one active stylus and is notshared by multiple styluses. In other embodiments, the sensor controllerassigns a specific frequency to each active stylus as part of thedownlink time slot allocation for the active stylus. Then, the same timeslot may be assigned to multiple active styluses which are assignedmultiple frequencies, respectively. Various examples of downlink timeslot allocation will be described below in reference to FIGS. 8A-9G.

Referring back to FIG. 7, in step S731, the sensor controller sends abeacon signal including the determined downlink time slot allocationback to the active stylus that has sent the ACK signal. Then, in stepS732 the sensor controller listens for packets to be transmitted fromthe active stylus according to the downlink time slot allocation. If thesensor controller detects packets from the active stylus, in step S733the sensor controller resets a counter to 0, and in step S735 the sensorcontroller continues to receive packets (position packets and/or datapackets including operational data) according to a schedule set by thedownlink time slot allocation. Also, when the sensor controller pollsthe active stylus, in any of the beacon signals, to report certainoperational data such as a battery level of the active stylus, in stepS737 the sensor controller receives a data packet including the polledoperational data from the active stylus.

After transmitting the beacon signal including the downlink time slotallocation in step S731, if the sensor controller does not detect anypackets returned in the allocated downlink time slots in step S732, instep S741 the sensor controller determines whether the counter hasexceeded a threshold value and, if not, increments the counter value instep S743. If the counter exceeds the threshold value in step S741, itis assumed that the active stylus has exited the sensing zone of thesensor controller 200 (i.e., the user has moved the active stylus awayfrom the sensor 201) and is beyond the reach of beacon signals from thesensor controller. Thus, the sensor controller returns to steps S711 andS713 and continues to transmit periodic beacon signals and wait for aresponse signal from an active stylus.

FIGS. 8A and 8B illustrate sample frame formats, in which a sensorcontroller transmits a beacon signal (BS) to an active stylus, and theactive stylus transmits a response signal including stylus capabilityinformation (CP or Hash#1) back to the sensor controller. In FIG. 8A, intime slot s0 of the first frame Fn, the sensor controller sends a beaconsignal, and in the next time slot s1, an active stylus that has detectedthe beacon signal returns a response signal including non-hashed styluscapability information of the active stylus (“CP 1”). In this example,the active stylus has not been previously paired with and thus does notrecognize the sensor controller (NO in step S615 of FIG. 6). Thus, theactive stylus sends complete (non-hashed) stylus capability informationin time slot s1, perhaps over multiple frames depending on the size ofthe complete stylus capability information. FIG. 8A shows that theactive stylus transmits the non-hashed stylus capability information intime slot s1 of at least two frames, Fn and Fn+1, as CP1 and CP2.

In FIG. 8B, the active stylus has been previously paired with and thusrecognizes the sensor controller (YES in step S615 of FIG. 6). Thus, theactive stylus sends a hashed value of its setting information (“Hash#1”)in a response signal transmitted in time slot s1. Advantageously thehash value of the setting information is of fixed data size, which istypically 20 bits or less and can be transmitted in a single time slot.Therefore, unlike the example of FIG. 8A described above, Hash#1representative of the setting information of the active stylus can berapidly transmitted to the sensor controller using time slot s1 of asingle frame (Fn).

The sensor controller, upon receiving and recognizing Hash#1 (YES instep S715 of FIG. 7), realizes that it already has the stylus capabilityinformation of the active stylus and, hence, the downlink time slotallocation for the active stylus. Thus, in time slot s0 of the nextframe Fn+1, the sensor controller sends a beacon signal, which includesthe downlink time slot allocation to be used by the active stylus totransmit packets to the sensor controller.

The sensor controller may notify the active stylus of the downlink timeslot allocation in various ways. For example, upon recognizing Hash#1transmitted from the active stylus, the sensor controller may sendHash#2 which corresponds to Hash#1 back to the active stylus. When theactive stylus confirms that Hash#2 transmitted from the sensorcontroller corresponds to Hash#2 stored in the active stylus (whereinHash#2 and Hash#1 are calculated based on the same setting information),the active stylus determines that it can use the same downlink time slotallocation that it used when it was previously paired with the sensorcontroller. Thus, in this example, the sensor controller transmits thedownlink time slot allocation to the active stylus by transmittingHash#2 in a beacon signal in response to receipt of Hash#1. In anotherexample, the sensor controller may transmit a predefined code indicativeof a particular downlink time slot allocation to the active stylus,wherein the sensor controller and the active stylus share a list ofpredefined codes and what downlink time slot allocation each codeindicates. In this example, the sensor controller transmits the downlinktime slot allocation to the active stylus by transmitting one of thepredefined codes in a beacon signal. As yet another example, the sensorcontroller may transmit the downlink time slot allocation bytransmitting, for example, an offset value and an interval value thatspecify the positions of downlink time slots allocated to the activestylus per frame, as will be more fully described below in reference toFIGS. 9A-9G. In this example, the sensor controller transmits thedownlink time slot allocation to the active stylus by transmitting anoffset value and an interval value, for example, in a beacon signal.

In FIG. 8B, the beacon signal in time slot s0 of frame Fn+1 includes thedownlink time slot allocation determined for the active stylus. Thus,the active stylus reads the beacon signal to determine the downlink timeslot allocation, and starts transmitting data packets (DP), whichinclude the stylus's operational data, in time slot s2 of frame Fn+1according to the determined downlink time slot allocation.

FIGS. 9A-9G illustrate seven different frame formats, in which an activestylus transmits packets to the sensor controller according to sevendifferent kinds of downlink time slot allocation specified by the sensorcontroller, respectively. In each of FIGS. 9A-9G, the beacon signal intime slot s0 of frame Fn+1 includes the downlink time slot allocationdetermined for the active stylus, and thus the active stylus cantransmit packets (data packets and/or position packets) to the sensorcontroller starting at time slot s1 of frame Fn+1 according to thedetermined downlink time slot allocation.

In FIG. 9A, the downlink time slot allocation specifies that the activestylus is to transmit data packets including operational data (e.g., 14bits) starting at time slot s2 of frame Fn+1 at equal intervals (T) offour (4) time slots, i.e., in time slots s6, s10 and s14 in frame Fn+1and in time slots s2, s6, s10 and s14 in frame Fn+2, and so forth. Inthis case, the sensor controller may define the downlink time slotallocation by specifying: i) an offset value indicative of a startingtime slot for use by the active stylus to transmit packets, and ii) aninterval value indicative of intervals between time slots allocated tothe active stylus beginning with the starting time slot. For example,the downlink time slot allocation of the example of FIG. 9A may bespecified by an offset of “2” indicating that the starting time slot iss2, and an interval value of “4” indicating that subsequent time slotsat equal intervals (T) of 4 time slots are to be used by the activestylus. The sensor controller may encode these values (offset: 2,interval: 4) in a beacon signal to thereby transmit the downlink timeslot allocation to the active stylus. The downlink time slot allocationmay additionally specify, for example, a total number of packets to betransmitted (e.g., “5” (DP1˜DP5) in the example of FIG. 9A) and/or adata format of the packets (e.g., how many total bits per packet, ofwhich how many bits indicate pen pressure data and how many bitsindicate barrel pressure data, etc.).

FIG. 9A also illustrates that time slot s1 of each frame Fn+1, Fn+2, andso forth, is reserved as a downlink time slot for the active stylus tooptionally send its stylus capability information (CP) to the sensorcontroller. For example, when the user adjusts the setting of the activestylus (e.g., the user changes the stylus line width) during abidirectional communication session with the sensor controller, theactive stylus may send the adjusted setting information to the sensorcontroller in time slot s1 of a subsequent frame. Additionally oralternatively, when the beacon signal from the sensor controllerincludes a read command requesting stylus capability information of theactive stylus, in response the active stylus includes the requestedcapability and/or setting information in time slot s1 of a subsequentframe.

FIG. 9A further illustrates that time slot s15 of frame Fn+1 is reservedas a downlink time slot for the active stylus to send a data packetincluding operational data that is polled (requested) in a precedingbeacon signal from the sensor controller. For example, when the beaconsignal in time slot s0 of frame Fn+1 requests the active stylus toreport its battery level, in response the active stylus sends a datapacket including the polled operational data (“Poll DP”) in time slots15 of frame Fn+1.

In FIG. 9B, the downlink time slot allocation specifies that the activestylus is to transmit data packets including operational data (e.g., 14bits) starting with time slot s3 of frame Fn+1 at equal intervals (T) offour (4) time slots, i.e., in time slots s7, s11 and s15 in frame Fn+1and in time slots s3, s7, s11 and s15 in frame Fn+2, and so forth.Similarly to the example of FIG. 9A described above, the downlink timeslot allocation of the example of FIG. 9B may be specified by an offsetof “3” indicating that the starting time slot is s3, and an intervalvalue of “4” indicating that subsequent time slots to be used are atequal intervals (T) of 4 time slots. FIG. 9B also illustrates that timeslot s1 of each frame Fn+1, Fn+2, and so forth, is reserved as adownlink time slot for the active stylus to optionally send styluscapability information (CP) to the sensor controller. Furthermore, whenthe beacon signal in time slot s0 of frame Fn+1 polls (requests) theactive stylus to report certain operational data of the active stylus,such as the stylus's battery level, in response the active stylus sendsa data packet including the polled operational data (“Poll DP”) in timeslot s1 of frame Fn+1.

In various embodiments, one or more time slots (e.g., s1) after thebeacon signal time slot (s0) in each frame is reserved for the activestylus to send a response signal (e.g., an ACK signal) to acknowledgereceipt of the beacon signal in the preceding time slot (s0). Thus, a“response signal” as used herein is not limited to the first responsesignal that the active stylus transmits upon entering the sensing zoneof the sensor controller in response to the initial (discovery) beaconsignal. Instead, response signals may include subsequent responsesignals, which the active stylus transmits in response to subsequentbeacon signals including various commands or other information directedto the active stylus. For example, the active stylus may transmit aresponse signal responsive to a subsequent beacon signal including a newdownlink time slot allocation, which has been updated by the sensorcontroller during the bidirectional communication session due to changedsetting of the active stylus. As another example, when a subsequentbeacon signal includes a read command requesting the active stylus totransmit stylus capability information, the active stylus sends aresponse signal including the requested stylus capability information(see FIG. 9A, wherein “CP” sent in time slot s1 of frames Fn+1 and Fn+2may be considered a response signal including the requested styluscapability information). As a further example, when a subsequent beaconsignal includes a polling command requesting the active stylus totransmit certain operational data (e.g., stylus battery level) of theactive stylus, the active stylus sends a response signal including thepolled operational data (see FIG. 9B, wherein “Poll DP” sent in timeslot s1 of frame Fn+1 may be considered a response signal including thepolled operational data).

In FIG. 9C, the downlink time slot allocation specifies that the activestylus is to transmit relatively large data packets (e.g., more than 14bits) starting at time slot s2 of frame Fn+1, in a unit of two (2) timeslots, at equal intervals (T) of four (4) time slots, i.e., in timeslots [s2/s3], [s6/s7], [s10/s11] and [s14/s15] in frame Fn+1, frameFn+2, and so forth. The downlink time slot allocation of the example ofFIG. 9C may be specified by an offset of “2” indicating that thestarting time slot is s2, an interval value of “4” indicating thatsubsequent time slots to be used are at equal intervals (T) of 4 timeslots, and additionally by a unit size value of “2” indicating that aunit of 2 time slots is used to form each of the data packets (DP1, DP2,DP3, DP4, DP5, etc.). The unit size value of “2” may be considered as apacket length to be used by the active stylus. Such relatively largedata packets may be needed, for example, to transmit customizedoperational data (CD) of the active stylus to the sensor controller.

As in FIGS. 9A and 9B, FIG. 9C also illustrates that time slot s1 ofeach frame Fn+1, Fn+2, and so forth, is reserved as a downlink time slotfor the active stylus to optionally send stylus capability information(CP) to the sensor controller. FIG. 9C further illustrates that, whenthe beacon signal in time slot s0 of frame Fn+1 polls (requests) theactive stylus to report certain operational data (e.g., stylus batterylevel), in response the active stylus sends a data packet including thepolled operational data (“Poll DP”) in time slot s1 of frame Fn+1.

FIG. 9D illustrates a combination of a first downlink time slotallocation that assigns frequency f0 to a first active stylus, and asecond downlink time slot allocation that assigns frequency f1 differentfrom frequency f0 to a second active stylus different from the firstactive stylus.

The first downlink time slot allocation specifies that the first activestylus, operating at frequency f0, is to transmit relatively large datapackets (e.g., a data packet including stylus orientation data (OR) thatoccupies two time slots per frame: see ORC 1 or 3 in FIG. 4C) startingat time slot s2 of frame Fn+1, in a unit of three (3) time slots, atequal intervals (T) of eight (8) time slots, i.e., in time slots[s2/s3/s4] and [s10/s11/s12] in frame Fn+1, frame Fn+2, and so forth.The first downlink time slot allocation may be specified by an offset of“2” indicating that the starting time slot is s2, an interval value of“8” indicating that subsequent time slots to be used are at equalintervals (T) of 8 time slots, and a unit size value (or packet length)of “3” indicating that a unit of 3 time slots is used to form each ofthe data packets (DP1, DP2, DP3, etc.).

The second downlink time slot allocation specifies that the secondactive stylus, operating at frequency f1, is also to transmit relativelylarge data packets (e.g., a data packet including stylus orientationdata (OR) that occupies three time slots per frame: see ORC 2 or 4 inFIG. 4C) starting at time slot s2 of frame Fn+1, in a unit of four (4)time slots, at equal intervals (T) of eight (8) time slots, i.e., intime slots [s2/s3/s4/s5] and [s10/s11/s12/s13] in frame Fn+1, frameFn+2, and so forth. The second downlink time slot allocation may bespecified by an offset of “2” indicating that the starting time slot iss2, an interval value of “8” indicating that subsequent time slots to beused are at equal intervals (T) of 8 time slots, and a unit size value(or packet length) of “4” indicating that a unit of 4 time slots is usedto form each of the data packets (DP1, DP2, DP3, etc.).

In FIG. 9D, as in previous examples, time slot s1 of each frame Fn+1,Fn+2, and so forth, is reserved as a downlink time slot for both of thefirst active stylus operating at frequency f0 and the second activestylus operating at frequency f1 to optionally send stylus capabilityinformation (CP) to the sensor controller. FIG. 9D further illustratesthat, when the beacon signal in time slot s0 of frame Fn+1 polls(requests) either of the first or second active stylus to report certainoperational data (e.g., stylus battery level), in response the polledactive stylus sends a data packet including the polled operational data(“Poll DP”) in time slot s15 of frame Fn+1. In the example of FIG. 9D,the beacon signal in time slot s0 of frame Fn+1 polled the first activestylus operating at frequency f0 and, thus, the first active stylusresponds by transmitting a data packet including the polled operationaldata (“Poll DP”) in time slot s15 of frame Fn+1.

Once the sensor controller assigns a particular frequency (e.g., f0, f1)to each of multiple active styluses, the sensor controller may include acommand directed to a particular active stylus only in a frequencyportion of the beacon signal assigned to that active stylus.

In FIG. 9E, which is similar to FIG. 9A, the downlink time slotallocation specifies that the active stylus is to transmit data packetsincluding operational data (16 bits) starting at time slot s2 of frameFn+1 at equal intervals (T) of four (4) time slots, i.e., in time slotss6, s10 and s14 in frame Fn+1 and in time slots s2, s6, s10 and s14 inframe Fn+2, and so forth. The downlink time slot allocation of thisexample may be specified by an offset of “2” indicating that thestarting time slot is s2, and an interval value of “4” indicating thatsubsequent time slots to be used are at equal intervals (T) of 4 timeslots. FIG. 9E also illustrates that time slot s1 of each frame Fn+1,Fn+2, and so forth, is reserved as a downlink time slot for the activestylus to optionally send stylus capability information (CP) to thesensor controller. FIG. 9E further illustrates that, when the beaconsignal in time slot s0 of frame Fn+1 polls (requests) the active stylusto report certain operational data (e.g., stylus battery level), inresponse the active stylus sends a data packet including the polledoperational data (“Poll DP”) in time slot s15 of frame Fn+1.

The downlink time slot allocation examples of FIGS. 9A-9E all specifydownlink transmission of data packets (DP1, DP2, DP3, DP4, DP5, etc.)which include operational data of the active stylus. On the other hand,the downlink time slot allocation of FIG. 9F specifies not only whichdownlink time slots to use in a frame but also what types of packets(data packets (DP) or position packets (XY)) the active stylus shouldtransmit in which downlink time slots.

Specifically, the downlink time slot allocation of FIG. 9F specifiesthat the active stylus is to transmit position packets (XY), which areto be used by the sensor controller to determine a position pointed toby the active stylus on the sensor 201, starting at time slot s2 offrame Fn+1 at equal intervals (T) of four (4) time slots, i.e., in timeslots s2, s6, s10 and s14 of each frame. The downlink time slotallocation further specifies that each position packet (XY) isimmediately followed by a data packet (DP1, DP2, DP3, DP4, DP5, etc.)transmitted in time slots s3, s7, s11 and s15 of each frame. Thus, aunit of two time slots [s2/s3], [s6/s7], [s10/s11] and [s14/s15] is usedto transmit a position packet (XY) and a data packet (DP). The downlinktime slot allocation of the example of FIG. 9F may be specified by anoffset of “2” indicating that the starting time slot is s2, an intervalvalue of “4” indicating that subsequent time slots to be used are atequal intervals (T) of 4 time slots, a unit size value of “2” indicatingthat a unit of 2 time slots is used to transmit a position packet (XY)and a data packet (DP) in succession, and a packet type value indicativeof what type of packet is transmitted in each unit. For example, apacket type value 0 may indicate only data packets are transmitted ineach unit (DP/DP), 1 may indicate only position packets are transmittedin each unit (XY/XY), 2 may indicate that a position packet immediatelyfollowed by a data packet are transmitted in each unit (XY/DP) as in theexample of FIG. 9F, and 3 may indicate that a data packet immediatelyfollowed by a position packet are transmitted in each unit (DP/XY).

As in the previous examples of downlink time slot allocation, FIG. 9Falso illustrates that time slot s1 of each frame Fn+1, Fn+2, and soforth, is reserved as a downlink time slot for the active stylus tooptionally send stylus capability information (CP) to the sensorcontroller.

It should be noted that the downlink time slot allocation of FIGS. 8A-9Gare examples only, and the present invention is not limited to using theparticular examples of FIGS. 8A-9G.

Operating systems and applications running on the system (host)controller 300 side often use smoothing on the data provided by thesensor controller 200. This includes smoothing on coordinate dataproduced by the sensor controller 200 as well as stylus data such aspressure or tilt. In many cases the algorithms of the applicationsassume the data is measured at equally spaced time intervals whenapplying the smoothing. There may be situations where the sensorcontroller 200 is unable to provide time slot allocations that provideequally spaced position packets or equally spaced data packets. In thesecases the sensor controller 200 may have to sub-sample, super-sample,interpolate, extrapolate, or by some means adjust the data such that thedata appears at equally spaced time intervals.

This technique also applies when coordinates and/or operational data ismeasured at different rates due to the time slot allocations. Datapackets from the sensor controller 200 to the host processor 300 have noway to indicate missing data, so missing data needs to be generated asabove (e.g., by sub-sampling, super-sampling, interpolation,extrapolation, etc.) to fill these intermediate packets with valid data.For example, if orientation data is available at half the rate ofcoordinate data, the orientation data needs to be super-sampled orextrapolated to twice the data rate to match the coordinate data rate.

FIG. 10 is a flowchart illustrating a sample pairing operation (and“fast inking” operation) between an active stylus and a sensorcontroller, in which the active stylus transmits a hash value (“Hash#1”)indicative of its setting information to the sensor controller. Thesensor controller, after recognizing the received Hash#1, returns asecond hash value (“Hash#2”) to the active stylus, as furtherverification that it has correctly recognized the active stylus as apreviously-paired stylus.

If the sensor controller recognizes the received Hash#1 (meaning thatthe sensor controller has been previously paired with the activestylus), the sensor controller may speed up the pairing operation usingthe stylus capability information and/or the downlink time slotallocation of the active stylus already cached in the sensor controller.

In step S301, the active stylus applies a hashing operation to itssetting information, for example, to calculate a hash value (“Hash#1”)of a fixed size (e.g., 16 bits), which can be transmitted in a singletime slot which typically accommodates up to 20 bits. In step S302, theactive stylus calculates a second hash value (“Hash#2”), whichcorresponds to Hash#1 and thus can be used to verify Hash#1, as will bemore fully described below. Hash#1 and Hash#2 may be calculated at powerup and any time a change takes place that affects the hash value, suchas when a user changes the setting (e.g., stylus line width) of theactive stylus. Any suitable hashing operation may be used to calculateHash#1 and Hash#2. For example, MurmurHash3™ algorithm, known in theart, may be used to calculate a 32-bit hash value based on capabilityinformation of any length. Then, the 16 LSBs of the hash value may beused as Hash#1 and the 16 MSBs of the hash value may be used as Hash#2.The calculated Hash#1 and Hash#2 are stored in the active stylus, forexample in the table (TBL) of the stylus capability information manager110 (see FIG. 1).

A hashing operation may be applied to some or all of the styluscapability information of the active stylus. For example, in order toreduce the possibility of hash collision in which the same hash value iscalculated for two active styluses or for two different settings of oneactive stylus, it may be desirable to exclude capability informationfrom the hash calculation because capability information may be commonamongst multiple active styluses manufactured by the same vendor. Thus,in various exemplary embodiments, the active stylus calculates Hash#1and Hash#2 based on the setting information portion of the styluscapability information of the active stylus and a global ID of theactive stylus, to create a unique “Hash ID” of the active stylus that isunlikely to collide with a Hash ID of another active stylus or of thesame active stylus having different setting. In some embodiments of thepresent invention, two hashing functions may be used to calculate Hash#1and Hash#2, respectively, to further reduce the potential for hashcollisions. For example, Hash#1 may be calculated using algorithm 1 onthe stylus capability information, such as a variation of CRC (cyclicredundancy check) adjusted to produce a 13-bit hash value, and Hash#2may be calculated using algorithm 2 on the stylus capabilityinformation, such as a variation of FNV (Fowler-Noll-Vo) adjusted toproduce a 16-bit hash value.

In step S401, the sensor controller sends a beacon signal (BS). In stepS303, when the active stylus detects the beacon signal, in step S304,the active stylus sends Hash#1 calculated in step S301 above to thesensor controller as part of a response signal.

In step S403, when the sensor controller detects the response signalfrom the active stylus, in step S405, the sensor controller determinesif Hash#1 included in the response signal is already cached in thesensor controller. If not, in step S407, the sensor controller sends aread command in a subsequent beacon signal to request the active stylusto transmit its complete (non-hashed) stylus capability information(CP). In step S305, the active stylus, in response to the read commandfrom the sensor controller, transmits the requested stylus capabilityinformation (CP) to the sensor controller. The sensor controller, instep S409, computes Hash#1 and Hash#2 based on the received styluscapability information (CP) and stores them in cache for future use.Alternatively, in step S409, the sensor controller calculates onlyHash#2 and stores the calculated Hash#2 with Hash#1 that was receivedand evaluated in step S405 above. In step S409 the sensor controlleruses the same hashing operation to calculate Hash#1 and Hash#2 as thatused in steps S301 and S302 by the active stylus.

Returning to step S405, if the sensor controller determines that Hash#1included in the response signal from the active stylus is already cachedin the sensor controller, Hash#2 corresponding to Hash#1 is also cachedin the sensor controller (see step S409). Thus, in step S411, the sensorcontroller sends Hash#2 corresponding to Hash#1 back to the activestylus for verification purposes. Specifically, in step S307, the activestylus determines whether Hash#2 returned from the sensor controllermatches Hash#2 cached in the active stylus, which corresponds to Hash#1that the active stylus has sent in step S304 above. If yes, the activestylus confirms that the sensor controller has correctly recognized theactive stylus as the one that the sensor controller has been previouslypaired with. Then, in step S309, the active stylus sends a responsesignal to the sensor controller to verify that the sensor controlleralready has the stylus capability information (including the settinginformation) and/or the downlink time slot allocation of the activestylus. In step S413, the sensor controller receives the response signalfrom the active stylus and concludes the verification process. At thispoint, both of the active stylus and the sensor controller are ready tostart bidirectional communication using the same downlink time slotallocation they used when they were previously paired. Also at thistime, the sensor controller may immediately start “inking” operationbecause it has all the setting information (e.g., brush style, linewidth, line color, etc.) of the active stylus that an applicationprogram needs to start drawing lines formed by the active stylus.

If, in step S307, the active stylus determines that Hash#2 received fromthe sensor controller does not correspond to Hash#2 stored in the activestylus, in step S311 the active stylus sends a failure message (FAIL) tothe sensor controller to indicate verification failure, and returns tostep S303 to resume listening for beacon signals from the sensorcontroller.

In step S413, the sensor controller is notified of verification failureeither by receiving the failure message (FAIL) sent from the activestylus (step S311) or by not receiving the response signal indicative ofsuccessful verification from the active stylus (step S309). Whenverification fails, the sensor controller returns to step S407 torequest the active stylus to transmit its complete (non-hashed) styluscapability information (CP).

The various embodiments described above can be combined to providefurther embodiments, and aspects of the embodiments can be modifiedbased on the above-detailed description. In general, in the followingclaims, the terms used should not be construed to limit the claims tothe specific embodiments disclosed in the specification and the claims,but should be construed to include all possible embodiments along withthe full scope of equivalents to which such claims are entitled.

The invention claimed is:
 1. A method of interfacing an active styluswith a sensor controller, the sensor controller coupled to a sensorconfigured to receive input from the active stylus, the methodcomprising: the sensor controller defining data frames consisting ofmore than one time slot usable for receiving packets from the stylus;transmitting, from the active stylus in response to a request from thesensor controller, a signal including stylus capability information,wherein the stylus capability information is indicative of one or moretypes of sensing data that the active stylus is capable of obtaining andtransmitting to the sensor controller; the sensor controllerdetermining, based on the stylus capability information, a downlink timeslot allocation indicative of a number of time slots to be used in adata frame by the active stylus to transmit packets to the sensorcontroller; and transmitting, from the sensor controller to the activestylus, the downlink time slot allocation.
 2. The method of claim 1,wherein the active stylus and the sensor are capacitively coupled. 3.The method of claim 1, wherein the stylus capability informationincludes at least one of: a) capability information regarding predefinedcapability of the active stylus, and b) setting information regardinguser-adjustable setting of the active stylus.
 4. The method of claim 3,wherein the capability information includes at least one of: i) whetherthe active stylus is capable of sensing stylus orientation, ii) whetherthe active stylus is capable of sensing barrel pressure, iii) whetherthe active stylus has a vendor-specific feature, iv) whether the activestylus has a preferred color, and v) a global ID of the active stylus.5. The method of claim 4, wherein the stylus orientation includes atleast one of tilt of the active stylus, twist of the active stylus,altitude of the active stylus, and azimuth of the active stylus.
 6. Themethod of claim 4, wherein the capability information is indicated in abit field of capabilities, in which each of multiple bits in the bitfield indicates the presence or absence of a corresponding one ofmultiple capabilities.
 7. The method of claim 3, wherein the capabilityinformation includes a number of barrel switch(es) provided on theactive stylus.
 8. The method of claim 3, wherein the setting informationincludes at least one of: i) stylus line width, ii) stylus tip type,iii) color, and iv) a unique identifying number of the active stylus. 9.The method of claim 3, wherein the setting information includes a colorindication which is changeable by a user through one or more switcheslocated on the stylus.
 10. The method of claim 3, wherein the settinginformation includes a unique identifying number of the active styluswhich is changeable by a user through one or more switches located onthe stylus.
 11. The method of claim 3, wherein the stylus capabilityinformation is hashed to generate a hash value of fixed size beforebeing transmitted to the sensor controller.
 12. The method of claim 1,wherein the downlink time slot allocation includes at least one of: i)which downlink time slots in a frame are allocated to the active stylus,and ii) what types of packets the active stylus is to transmit in whatdownlink time slots.
 13. The method of claim 1, wherein the downlinktime slot allocation includes: i) an offset value indicative of astarting time slot for use by the active stylus, and ii) an intervalvalue indicative of intervals between time slots allotted to the activestylus beginning with the starting time slot.
 14. The method of claim 1,further comprising: transmitting, from the active stylus that hasreceived the downlink time slot allocation to the sensor controller,packets in the time slots allotted according to the downlink time slotallocation.
 15. The method of claim 14, wherein the packets to betransmitted are one of: i) a data packet including operational dataindicative of operational state of the active stylus, and ii) a non-datapacket used by the sensor controller to calculate a position of theactive stylus relative to the sensor.
 16. The method of claim 15,wherein the operational data includes one or more of: i) stylus tippressure data, ii) barrel pressure data, iii) stylus orientation data,iv) stylus barrel switch state data, and v) stylus battery level. 17.The method of claim 16, wherein the operational data regarding stylusorientation generated by multiple inertial measurement units (IMUs) ismultiplexed into one or more time slots.
 18. The method of claim 16,wherein the step of transmitting data packets including operational dataincludes at least one of: i) transmitting scheduled data packetsincluding operational data, and ii) transmitting an unscheduled datapacket including operational data requested by the sensor controller.19. The method of claim 18, wherein transmitting the unscheduled datapacket includes transmitting the unscheduled data packet in a time slotreserved for transmission of unscheduled operational data.
 20. A sensorcontroller to be coupled to a sensor, which is to receive input from anactive stylus, the sensor controller comprising: a processor which, inoperation, defines data frames consisting of time slots forcommunication between the active stylus and the sensor controller;receives a signal including stylus capability information of the activestylus from the active stylus, wherein the stylus capability informationis indicative of one or more types of sensing data the active stylus iscapable of obtaining and transmitting to the sensor controller; anddetermines, based on the received stylus capability information, adownlink time slot allocation indicative of a number of time slots to beused in a data frame by the active stylus to transmit packets to thesensor controller; and a transmission controller coupled to theprocessor, wherein the transmission controller, in operation, causestransmission of the downlink time slot allocation to the active stylus.21. The sensor controller of claim 20, wherein the stylus capabilityinformation includes at least one of: a) capability informationregarding predefined capability of the active stylus, and b) settinginformation regarding user-adjustable setting of the active stylus. 22.The sensor controller of claim 20, wherein the downlink time slotallocation includes: i) an offset value indicative of a starting timeslot for use by the active stylus, and ii) an interval value indicativeof intervals between time slots allotted to the active stylus beginningwith the starting time slot.
 23. The sensor controller of claim 20,wherein the processor receives data packets in the time slots allottedto the active stylus according to the downlink time slot allocation. 24.The sensor controller of claim 23, wherein the data packets includeoperational data indicative of operational state of the active stylus,the operational data including one or more of: i) stylus tip pressuredata, ii) barrel pressure data, iii) stylus orientation data, iv) stylusbarrel button state, and v) stylus battery level.
 25. The sensorcontroller of claim 23, wherein the processor receives at least one of:i) scheduled data packets including operational data of the activestylus, and ii) an unscheduled data packet including operational datathat the sensor controller has requested.
 26. An active stylus,comprising: a receiver which, in operation, receives periodic beaconsignals transmitted from a sensor controller coupled to a sensor that isconfigured to receive input from the active stylus, the beacon signalsto serve as timing reference for time slots used in bidirectionalcommunication between the active stylus and the sensor controller; aprocessor coupled to the receiver to detect the beacon signal andprepare a signal including stylus capability information of the activestylus, wherein the stylus capability information is indicative of oneor more types of sensing data that the active stylus is capable ofobtaining and transmitting to the sensor controller; and a transmittercoupled to the processor to transmit the signal including the styluscapability information to the sensor controller; wherein the receiver,in operation, receives from the sensor controller a downlink time slotallocation indicative of a number of time slots to be used in a dataframe by the active stylus to transmit packets to the sensor controller,the downlink time slot allocation determined by the sensor controllerbased on the stylus capability information of the active stylus, and thetransmitter, in operation, transmits packets to the sensor controller inthe time slots allotted to the active stylus according to the downlinktime slot allocation.
 27. The active stylus of claim 26, which is acapacitive-type active stylus.
 28. The active stylus of claim 26,wherein the transmitter transmits data packets that include operationaldata indicative of operational state of the active stylus, theoperational data including one or more of: i) stylus tip pressure data,ii) barrel pressure data, iii) stylus orientation data, iv) stylusbarrel switch state data, and v) stylus battery level.
 29. The activestylus of claim 28, wherein the transmitter transmits at least one of:i) scheduled data packets including operational data, and ii) anunscheduled data packet including operational data requested by thesensor controller.
 30. A system, comprising: (a) a sensor, (b) a sensorcontroller coupled to the sensor and including: a transmissioncontroller which, in operation, causes transmission of periodic beaconsignals, the beacon signals to serve as timing reference for time slotsused in bidirectional communication between the sensor controller andone or more active styluses; and a sensor processor coupled to thetransmission controller, and (c) an active stylus including: a receiverwhich, in operation, receives the periodic beacon signals transmittedfrom a sensor controller; a stylus processor coupled to the receiver todetect the beacon signal and prepare a signal including styluscapability information of the active stylus, wherein the styluscapability information is indicative of one or more types of sensingdata that the active stylus is capable of obtaining and transmitting tothe sensor controller; and a transmitter coupled to the stylus processorto transmit the signal including the stylus capability information tothe sensor controller, wherein the sensor controller determines, basedon the received stylus capability information of the active stylus, adownlink time slot allocation indicative of a number of time slots to beused in a data frame by the active stylus to transmit packets to thesensor controller, and transmits the downlink time slot allocation tothe active stylus.